package persistencia.MySQL;

import persistencia.AbstractRegistroTraduccionDAO;
import persistencia.DAOFactory;

/**
 * Clase que interactua con una base de datos MySQL mapeando objetos de acceso de tipo RegistroTraduccionDAO
 */
public class MysqlRegistroTraduccionDAO extends AbstractRegistroTraduccionDAO {

    /**
     * Seleciona la base de datos MySQL y la settea en la clase abstracta.
     * Además redefine las query que son diferentes a la clase de la que extiende
     */
    public MysqlRegistroTraduccionDAO() {
        daoFactory = DAOFactory.getFactorys().get(2);
        this.insertarQuery = ""
                + " INSERT INTO registrotraduccion (textoOrigen, idiomaOrigen, textoDestino, idiomaDestino)"
                + " (SELECT ? AS textoOrigen, ? AS idiomaOrigen, ? AS textoDestino, ? AS idiomaDestino"
                + "  FROM registrotraduccion"
                + "  WHERE (textoOrigen = ?"
                + "     AND idiomaOrigen = ?"
                + "     AND textoDestino = ?"
                + "     AND idiomaDestino = ?)"
                + "     OR (textoOrigen = ?"
                + "         AND idiomaOrigen = ?"
                + "         AND textoDestino = ?"
                + "         AND idiomaDestino = ?)"
                + " HAVING COUNT(*) = 0);";
    }
}
